Amazon SageMaker Clarifyで出力したレポートの見方
皆さんこんにちは。
クルトンです!
以前のブログで、SageMaker Clarify(以降、Clarifyと呼称)でレポート出力をやってみました。レポート出力に際して、Partial Dependence Plot(以下、PDPと呼称)のみのものと、PDPとSHapley Additive exPlanations(以下、SHAPと呼称)を含めたものを出力しております。
今回のブログでは、PDPとSHAPそれぞれのレポートの見方を確認していきます。
注意点
以降の内容は、上記ブログでレポートを出力したものを元に確認していきます。お手元のレポートと結果が異なる場合は、今回のブログを参考に読み進めてください。
また、レポートを出力する際に使われているデータセットは、電話の回線契約を解約したかどうかのデータセットです。予測したものは、解約したかどうかです。以上内容を頭の片隅に置いていただきながら、以下本文を見ていただくと、読みやすいのではないかと思います。
PDPの見方
PDPの見方について、PDPの考え方とレポートを通して確認していきます。
PDPの考え方
前提として次のようなデータと、データを入力した予測値があるとします。
特徴量A | 特徴量B | 特徴量C | 予測値 |
---|---|---|---|
1 | 3 | 6 | f(1,3,6) = 0.23 |
2 | 4 | 2 | f(2,4,2) = 0.34 |
3 | 5 | 3 | f(3,5,3) = 0.67 |
PDPでは特徴量1つ(場合によっては2つ)が予測に与える平均的な影響を確認する事が可能です。
例えば上記の表形式のデータで、特徴量Aが与える予測への影響を確認したいとします。その場合、次に示すように特徴量Aの値を変更し、予測値の平均を確認します。つまり、例では3行なので、3つの予測値を足した後に3で割った平均を確認します。
値を1に変更
次の表のような結果の場合、予測値の平均は(0.23+0.12+0.45)/3なので、0.2666……となります。
特徴量A | 特徴量B | 特徴量C | 予測値 |
---|---|---|---|
1 | 3 | 6 | f(1,3,6) = 0.23 |
1 | 4 | 2 | f(1,4,2) = 0.12 |
1 | 5 | 3 | f(1,5,3) = 0.45 |
値を2に変更
次の表のような結果の場合、予測値の平均は(0.33+0.34+0.50)/3なので、0.39となります。
特徴量A | 特徴量B | 特徴量C | 予測値 |
---|---|---|---|
2 | 3 | 6 | f(2,3,6) = 0.33 |
2 | 4 | 2 | f(2,4,2) = 0.34 |
2 | 5 | 3 | f(2,5,3) = 0.50 |
値を3に変更
次の表のような結果の場合、予測値の平均は(0.24+0.40+0.67)/3なので、0.43666……となります。
特徴量A | 特徴量B | 特徴量C | 予測値 |
---|---|---|---|
3 | 3 | 6 | f(3,3,6) = 0.24 |
3 | 4 | 2 | f(3,4,2) = 0.40 |
3 | 5 | 3 | f(3,5,3) = 0.67 |
以上のように、確認したい特徴量の値を変化させながら、どのように予測値(平均)が変わっていくのかを確認できるのがPDPです。上記の値を1から3に変更させた時の予測値平均を確認すると、どうやら値は大きい方が予測しやすそうですね。
PDPのレポート
PDPのレポート例を以下に示します。
レポート出力の際に使われているデータセットは、電話回線を解約したかどうか(解約した場合は1、解約していない場合は0のラベル)というものでした。 画像では、夜間に電話をした回数(Night Calls)におけるPDPが表示されています。
縦軸はモデルの予測値の数値、横軸はNight Callsの値です。
Night Callsの値が50か0の時にモデルの予測値が0.7を超えますので、Night Callsの値が比較して少ないときにモデルから見ると「解約していそう」と予測しています。確かに、利用回数が少ないと解約する確率は上がりそうなので、直感的にもあっていそうです。
SHAPの見方
SHAPでは、モデルの予測に役立った特徴量がどれであるかを確認できます。
SHAPの考え方については、弊社じょんすみすのブログによくまとまっていますので、ご参照ください。
SHAPのレポート
次の画像はSHAPを含むレポートをClarifyで出力した時に、最初のページで確認できるものです。
複数の特徴量の中で一番役立った特徴量は、横棒グラフで一番長いものなので"VMail Plan_yes"です。 ボイスメール機能があるかどうかを表す特徴量なのですが、よく使われている地域なのかもしれませんね。データを収集している対象の背景や生活を知る事で、理解度が深まりそうなヒントが画像から読み取れます。
次の画像は、"VMail Plan_yes"の1行ごとに算出されたSHAP値(貢献度)の分布を表します。分布を見てみると、必ずしも予測において役立っているとは言えません。(shap_valueがマイナスでむしろ予測の足を引っ張っているものもあります。)
この画像から考えると、結果的には予測に一番役立つ(貢献している)特徴量は"VMail Plan_yes"でしたが、さらにデータを集めてモデルを学習させてみると結果が変わる可能性があります。また、単一の特徴量のみでなく、他の特徴量(例えばNight Calls)もあるので、予測が上手くできている可能性があります。
終わりに
今回は、PDPとSHAPを含んだレポートの見方をご紹介しました。
クルトンの解釈なども含まれていますので、「自分だったら結果をどう解釈するか」を考えながらみると、違った見え方があるかもしれません。
今回はここまで。
それでは、また!